/* type Props = {
  id: string
  children: number[]
}
// Partial 可以把所有的属性变为可选的，相当于都加了 ? 号
type PartialProps = Partial<Props>

const a: PartialProps = {
  id: 'xxx',
  children: [23]
} */

/* type Props = {
  id: string
  children: number[]
}

// Readonly 可以把所有的属性变为只读的，相当于都加了 readonly 关键字
type ReadonlyProps = Readonly<Props>
const a: ReadonlyProps = {
  id: '888',
  children: [1]
}
// a.id = '99' */

/* interface Props {
  id: string
  title: string
  children: number[]
}

// 从 Props 中只摘出来 id 和 title 这两个类型定义
type PickProps = Pick<Props, 'id' | 'title'>

const a: PickProps = {
  id: '888',
  title: 'xxx',
} */

interface Props {
  id: string
  title: string
  children: number[]
}

// 从 Props 中排除 id 和 title，形成一个新类型
type OmitProps = Omit<Props, 'id' | 'title'>

const a: OmitProps = {
  children: [1],
}

export { }
